namespace PugLib.Threading
{
	using System;

	public abstract class AbstractThreadData
	{
		private Guid _id;
		private object _result;

		protected AbstractThreadData()
		{
			_id = Guid.NewGuid();
		}

		protected AbstractThreadData(Guid id)
		{
			_id = id;
		}

		protected AbstractThreadData(Guid id, object result)
		{
			_id = id;
			_result = result;
		}

		public Guid Id
		{
			get { return _id; }
			set { _id = value; }
		}

		public object Result
		{
			get { return _result; }
			set { _result = value; }
		}
	}
}